# !/usr/bin/env python
# -*- coding: utf-8 -*-

# 冒泡排序
# 基本思想: 持续比较相邻的元素
# 时间复杂度:最好O(n)(已经排好序),最坏O(n^2)(逆序),平均O(n^2)
# 空间复杂度:最好0(已经排好序),最坏O(n)(逆序),平均O(1)
# 稳定性:稳定
# 适合少量数据排序

def bubble_sort(num_arr):
    for i in range(0, len(num_arr)):
        flag = False
        for j in range(0, len(num_arr) - 1):
            if num_arr[j] > num_arr[j + 1]:
                tmp = num_arr[j]
                num_arr[j] = num_arr[j + 1]
                num_arr[j + 1] = tmp
                flag = True
        if not flag:
            break


if __name__ == '__main__':
    arr = [1, 2, 5, 7, 6, 5, 4]
    bubble_sort(arr)
    print(arr)

